เส้นทางจาก struct ถึง ประเภทข้อมูลเชิงนามธรรม (ADT) แสดงการเปลี่ยนผ่านจากกล่องใส ที่สายไฟภายในทุกเส้นถูกเปิดเผย ไปยังกล่องดำ ที่ อินเทอร์เฟซ ถูกแยกออกจาก การปฏิบัติใช้งาน. การเปลี่ยนแปลงนี้ทำให้มั่นใจในเรื่อง การปิดผนึก: ผู้ใช้โต้ตอบกับฟังก์ชันเช่น read หรือ combine โดยไม่จำเป็นต้องรู้ว่ารายได้คำนวณหรือเก็บไว้อย่างไร
1. สถาปัตยกรรมคลาส
ทุกคลาสกำหนด เอกลักษณ์ประเภทที่ไม่ซ้ำกัน. แม้ว่าคลาสสองคลาสจะมีสมาชิกเหมือนกัน แต่ C++ จะมองว่าพวกมันไม่เข้ากันได้ การใช้ typedef และ การประกาศล่วงหน้า (เช่น class Screen;) ทำให้เราสามารถออกแบบความสัมพันธ์ที่ซับซ้อนได้ โดยยังคงการสร้างความสมบูรณ์แบบ เราโดยทั่วไปใช้ เวอร์ชันที่สร้างขึ้นเอง ของคอนสตรักเตอร์ เช่น Sales_data() = default;, เพื่อรักษาระดับความสะดวกของชนิดที่มีอยู่แล้ว ($$total = trans;$$)
2. ฟังก์ชันอินเทอร์เฟซที่ไม่ใช่สมาชิก
ฟังก์ชันเช่น read คือ ฟังก์ชันที่เกี่ยวข้องกับคลาสแต่ไม่ใช่สมาชิก. พวกมันเป็นส่วนหนึ่งของอินเทอร์เฟซ แต่ไม่ใช่คลาสเอง มักต้องการ ความเป็นเพื่อน เพื่อเข้าถึงข้อมูลส่วนตัว